#ifndef DPV_NETWORK_HPP
#define DPV_NETWORK_HPP

#include "entity.hpp"

/**
 * There is only a single instance of Network.
 * A Network consists of vertexes (devices), edges (links) and initial flow rules.
 * Each device provides a bunch of methods.
 */

class Network {
public:
    Network();
    void addDevice(const string &name);
    void addLink(const string &fromd, const string &fromp, const string &tod, const string &top);

    std::vector<Rule*> initialRules;
    std::unordered_map<string, Device*> nameToDevice;
};

#endif //DPV_NETWORK_HPP
